package com.zaimokuza.cn.mapper;

import com.github.pagehelper.Page;
import com.zaimokuza.cn.entity.message.ContactUserUnreadNumber;
import com.zaimokuza.cn.entity.message.Message;
import com.zaimokuza.cn.entity.message.vo.MessageInfo;
import com.zaimokuza.cn.entity.user.ContactUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;

/**
 * @author zaimokuza
 */
@Mapper
public interface MessageMapper {

    /**
     * 批量添加消息记录
     *
     * @param messages 消息集合
     */
    void insertBatchRecord(@Param("list") ArrayList<Message> messages);

    /**
     * 批量修改消息状态
     *
     * @param userId   用户ID
     * @param friendId 联络人ID
     */
    void updateBatchRecordStatus(@Param("userId") String userId, @Param("friendId") String friendId);

    /**
     * 根据用户ID查询分页的联络人信息
     *
     * @param userId 用户ID
     * @return 联络人信息列表
     */
    Page<ContactUser> queryContactPersonPage(String userId);

    /**
     * 根据用户ID及联络人ID查询消息列表
     *
     * @param userId   用户ID
     * @param friendId 联络人ID
     * @return 消息分页集合
     */
    Page<MessageInfo> queryMessagePage(@Param("userId") String userId, @Param("friendId") String friendId);

    /**
     * 查询联络人未读消息数量
     *
     * @param userId            用户ID
     * @param contactUserIdList 联络人ID集合
     * @return 联络人未读消息数量
     */
    ArrayList<ContactUserUnreadNumber> queryContactUserUnreadNumber(@Param("userId") String userId, @Param("list") ArrayList<String> contactUserIdList);


}
